package org.example.managere.service.feibiao;

import org.example.managere.dto.feibiao.AmAapOutputDto;
import org.example.managere.entity.feibiao.AmAapOutput;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.math.BigDecimal;
import java.util.List;
import java.util.Optional;

/**
 * 工况特定输出参数表 Service
 */
public interface AmAapOutputService {
    /**
     * 分页查询所有记录
     */
    Page<AmAapOutputDto> findAll(Pageable pageable);
    
    /**
     * 根据ID查询
     */
    Optional<AmAapOutputDto> findById(Integer id);
    
    /**
     * 根据电机ID查询
     */
    List<AmAapOutputDto> findByMotorId(String motorId);
    
    /**
     * 根据电机状态查询
     */
    Page<AmAapOutputDto> findByMotorState(AmAapOutput.MotorState motorState, Pageable pageable);
    
    /**
     * 关键词搜索
     */
    Page<AmAapOutputDto> search(String keyword, Pageable pageable);
    
    /**
     * 查询剩余使用寿命低于指定阈值的记录
     */
    Page<AmAapOutputDto> findByRemainingUsefulLifeLessThan(Float threshold, Pageable pageable);
    
    /**
     * 查询异常指数高于指定阈值的记录
     */
    Page<AmAapOutputDto> findHighRiskMotors(BigDecimal threshold, Pageable pageable);
    
    /**
     * 保存记录
     */
    AmAapOutputDto save(AmAapOutputDto dto);
    
    /**
     * 更新记录
     */
    AmAapOutputDto update(Integer id, AmAapOutputDto dto);
    
    /**
     * 删除记录
     */
    void deleteById(Integer id);
} 